Sanal Bellek Nedir?

Aslında sahip olduğunuzdan daha fazla belleğe ihtiyacınız var ise ne yapılabilir? Sanal bellek (Virtual Memory) çözümdür!

💡 Temel Fikir

Programlarınızı diskte tutarak, fiziksel belleği bir cache gibi kullanabilirsiniz. Bu yapıya sanal bellek denir.

Çözülmesi Gereken Problemler

1. Bellek Yetersizliği

Her programınız elinizdeki belleğe ayrı ayrı sığsa bile, aynı anda çalışan 10 program sığmayacaktır.

2. Adres Çakışması

Birden çok program aynı bellek adresine yazmak isteyebilir.

3. Bellek Koruması

Bir programın verilerini başka bir program okuyup yazamasın diye korumalıyız.

Çözüm: Dolaylı Gösterim (Indirection)

🔑 Altın Kural

"Bilgisayar bilimlerindeki her problem bir dolaylı gösterim seviyesi ekleyerek çözülebilir."

Programlar sanal adresleri kullanarak fiziksel adreslere dönüştürebilir.

Sayfa Tabloları (Page Tables)

Sayfa tablosu VPN (Virtual Page Number) ile indekslenip PPN (Physical Page Number) döndürür.

Sayfa Tablosu Özellikleri

  • Her sürecin ayrı bir sayfa tablosu vardır
  • Sayfa tablosu kaydı şu anki sürecin tablosunun yerini gösterir
  • Valid bit ve PPN içerir

TLB (Translation Lookaside Buffer)

⚡ TLB Nedir?

Translation Lookaside Buffer (TLB), fiziksel dönüşümü tutan işlemci içi özel bir cache'dir.

TLB Çalışma Şekli

  1. VPN → TLB'de arama yap
  2. TLB Hit: PPN doğrudan döner ✓
  3. TLB Miss: Sayfa tablosunda gezinmek gerekir

Page Fault

Sayfa bellekte yoksa page fault oluşur ve işletim sistemi diskten sayfayı yükler.

Bellek Koruması

Mod Açıklama Yetkiler
User Mode Normal programlar Kısıtlı erişim
Kernel Mode İşletim sistemi Tam erişim

Özet

Sanal Bellek Avantajları

  • ✓ Manuel bellek yönetiminden kurtarır
  • ✓ Aynı sanal adreslerin kullanılmasına izin verir
  • ✓ Süreçleri birbirinden korur
  • ✓ Kontrollü paylaşım sağlar
  • ✓ Fiziksel belleği disk cache'i olarak kullanır